ПОБУДОВА ЗОБРАЖЕНЬ НА ЕКРАНІ КОМП’ЮТЕРА

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
Не вказано
Кафедра:
Захист інформації

Інформація про роботу

Рік:
2012
Тип роботи:
Розрахунково - графічна робота
Предмет:
Програмування комп’ютерної графіки
Група:
ЗІ-32

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” ІКТА Кафедра Захист інформації Розрахунково-графічна робота №1 з курсу: „ Програмування комп’ютерної графіки ” на тему: „ ПОБУДОВА ЗОБРАЖЕНЬ НА ЕКРАНІ КОМП’ЮТЕРА ” Львів – 2012 Мета роботи : набути практичних навиків в складанні програм для побудови зображень на екрані комп’ютера за допомогою засобів мови С. Варіант 1 Завдання : Побудувати графік функції, заданої таблично. Графік повинен відображати результати розрахунків, які записані у файлі на диску. Масштаб розмітки осей координат графіка повинен відповідати реальним результатам розрахунків. Параметри для побудови графіка визначені в таблиці 2. Варіант завдання визначає викладач. Необхідно передбачити “плаваючий” центр координат – основну частину екрану мають займати ті чверті, в яких знаходиться графік функції.. y=arctg(x) x =[-50;50] Блок-схема алгоритму програми / / / / Розрахунок функціональних залежностей для побудови графіка. xd = b-a; xmashd = rect.right - rect.left; yd = ymax-ymin; ymashd = rect.bottom - rect.top; ky = (ymashd - y_retreat_bottom - y_retreat_top)/yd; kx = (xmashd - x_retreat_left - x_retreat_right)/xd; x_axis = x_retreat_left - kx * a; y_axis = y_retreat_top + ky * ymax; Список ідентифікаторів констант, змінних, процедур і функцій, використовуваних в програмі та їх пояснення hPen – перо товщиною 3 рх; CPen – функція для створення пера; LineTo – проводить лінію з поточної вершини до точки, координати якої задані; MoveToEx – переміщує поточну вершину; FloodFill – зафарбовує замкнуту область; SelectObject – вибирає потрібний пензль або перо; DeleteObject - видаляє потрібний пензль або перо; GetClientRect – визначення параметрів екрану користувача; CString – оголошення змінної для виведення тексту; kx, ky – змінні коефіціентів перетворення; xd, yd, xmashd, ymashd - різниця мінімальних і максимальних координат; xmash, ymash – машинні координати; x, y - реальні координати; h – інтервал; ymax, ymin, – мінімальні і максимальні значення функції; a = -50; - Початкове значення проміжку; b = 50; - Кінцеве значення проміжку ; x_retreat_left, x_retreat_right, y_retreat_bottom, y_retreat_top - Відступи по краях; x_axis, y_axis – машинны координати осей; F – змінна функції; Y, X, O, d, ss, ssss, A – змінні для виведення розмітки осей. Текст програми: // ChildView.cpp : implementation of the CChildView class // #include "stdafx.h" #include "lr1.h" #include "ChildView.h" #include <cmath> #ifdef _DEBUG #define new DEBUG_NEW #endif // CChildView CChildView::CChildView() { } CChildView::~CChildView() { } BEGIN_MESSAGE_MAP(CChildView, CWnd) ON_WM_PAINT() END_MESSAGE_MAP() // CChildView message handlers BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) { if (!CWnd::PreCreateWindow(cs)) return FALSE; cs.dwExStyle |= WS_EX_CLIENTEDGE; cs.style &= ~WS_BORDER; cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, ::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL); return TRUE; } double F(double x) { return atan(x); // Задаємо функцію } void CChildView::OnPaint() { SEGdc dcc(this); // device context for painting RECT rect; GetClientRect(&rect); // Змінні для побудови графіку - ПОЧАТОК int xmash, ymash, x_axis, y_axis, x_retreat_left, x_retreat_right, y_retreat_bottom, y_retreat_top; double y, kx, ky, xmashd, xd, ymashd, yd, a, b, h, ymax, ymin; x_retreat_left = x_retreat_right = y_retreat_bottom = 70; // Відступи по краях y_retreat_top = 250; a = -50; // Початкове значення проміжку b = 50; // Кінцеве значення проміжку h = 0.01; // Крок // Змінні для побудови графіку - КІНЕЦЬ //Визначення мінімального і максимального значення - ПОЧАТОК ymax = F(a); ymin = F(a); for (double x = a; x < b; x = x + h) { y = F(x); if (ymax < y) ymax = y; else; if (ymin > y) ymin = y; else; } //Визначення мінімального і максимального значення - КІНЕЦЬ ...
Антиботан аватар за замовчуванням

16.01.2013 12:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини